package main

import "fmt"

func main() {
	/*
		岳小鹏参加golang考试，他和父亲岳不群达成承诺：
		如果：
		成绩为100分时，奖励一辆BMW;
		成绩为(80, 99]时，奖励一台iPhone7plus；
		成绩为[60, 80]时，奖励一个ipad；
		其他时，什么奖励也没有。
		请从键盘输入岳小鹏的期末成绩，并加以判断
	*/

	// 分析思路
	// 1. score 分数变量 int
	// 2. 选择多分支流程控制
	// 3. 成绩从键盘输入	fmt.Scanln

	/* var score int
	fmt.Println("请输入岳小鹏的期末成绩")
	fmt.Scanln(&score)

	if score == 100 {
		fmt.Println("奖励一辆BMW")
	} else if 80 < score && score <= 90 {
		fmt.Println("奖励一台iPhone7plus")
	} else if 60 <= score && score <= 80 {
		fmt.Println("奖励一个ipad")
	} else {
		fmt.Println("什么奖励也没有")
	} */

	// 使用陷阱		只会输出ok1	条件语句每个代码块自带return
	/* var n int = 10
	if n > 9 {
		fmt.Println("ok1")
	} else if n > 6 {
		fmt.Println("ok2")
	} else if n > 3 {
		fmt.Println("ok3")
	} else {
		fmt.Println("ok4")
	} */

	// var b bool = true
	/* if b == false {
		fmt.Println("a")
	} else if b {
		fmt.Println("b")
	} else if !b {
		fmt.Println("c")
	} else {
		fmt.Println("d")
	} */

	/* if b = false {			// 编译报错 golang中只接收条件语句 不接受赋值语句
		fmt.Println("a")
	} else if b {
		fmt.Println("b")
	} else if !b {
		fmt.Println("c")
	} else {
		fmt.Println("d")
	} */

	/*
		求ax2+bx+c = 0方程的根。a，b，c分别为函数的参数，如果：b2-4ac>0，则有两个解：
		b2-4ac = 0,则有一个解；b2-4ac < 0,则无解；
		提示1：x1 = (-b+sqrt(b2-4ac)) / 2a
					x2 = (-b-sqrt(b2-4ac)) / 2a
		提示2：math.Sqrt(num)；可以求平方根 需要引入 math包

		分析思路
		1. a，b，c 是三个float64
		2. 使用到给出的数学公式
		3. 使用到多分支
		4. 使用math.Squr方法b	=> 手册
	*/

	/* var a float64 = 3.0
	var b float64 = 100.0
	var c float64 = 6.0
	m := b*b - 4*a*c

	if m > 0 {
		x1 := (-b + math.Sqrt(m)) / 2 * a
		x2 := (-b - math.Sqrt(m)) / 2 * a
		fmt.Printf("x1=%v x2=%v", x1, x2)
	} else if m == 0 {
		x := (-b - math.Sqrt(m)) / 2 * a
		fmt.Printf("x=%v", x)
	} else {
		fmt.Printf("无解")
	} */

	/*
		大家都知道，男大当婚，女大当嫁。那么女方家长要嫁女儿，当然要提出一定的条件:
		高:180cm以上;	富:财富1千方以上;	帅:是。
		亲件从控制台输入。
		1)如果这三个亲件同时满足，则:“我一定要嫁给他!!!”
		2)如果三个条件有为真的情况，则:“嫁吧，比上不足，比下有余。”
		3)如果三个条件都不满足，则:“不嫁!”

		var height int32 | var money float32 | var handsome bool

		分析思路
		1．应该设计三个变量 var height int32 | var money float32 | var handsome bool
		2．而且需要从终端输入 fmt.scanin
		3．使用多分支if--else if -- else

	*/

	var height int32
	var money float32
	var handsome bool

	fmt.Println("大家都知道，男大当婚，女大当嫁。那么女方家长要嫁女儿，当然要提出一定的条件:")
	fmt.Println("高:180cm以上;	富:财富1千方以上;	帅:是。")
	fmt.Println("亲件从控制台输入。以空格间隔")
	fmt.Scanln(&height, &money, &handsome)

	if height > 180 && money > 10000000 && handsome == true {
		fmt.Println("我一定要嫁给他!!!")
	} else if height > 180 || money > 10000000 || handsome == true {
		fmt.Println("嫁吧，比上不足，比下有余。")
	} else {
		fmt.Println("不嫁!")
	}
}
